package com.shxy.dao;

import com.shxy.pojo.Node;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 目录管理接口
 */
@Repository
public interface INodeDao extends JpaRepository<Node, Integer> {

    /**
     * 查询指定id的节点是否存在
     * @param id
     * @return
     */
    boolean existsById(int id);

    /**
     * 获取某层上指定名称的节点
     * @param name
     * @return
     */
    Node getByLevelAndName(int level, String name);

    /**
     * 是否存在以指定节点为父节点的节点
     * @return
     */
    boolean existsByParent(Node node);

    /**
     * 获取节点的子节点
     * @param parentId
     * @return
     */
    List<Node> getAllByParent_Id(int parentId);

    /**
     * 根据编号查询节点信息
     * @param id
     * @return
     */
    Node getById(int id);

    /**
     * 判断同一父目录下是否有同名的子节点
     * @param parentId
     * @param name
     * @return
     */
    boolean existsByParent_IdAndName(int parentId, String name);

    /**
     * 根据父目录和名称获取节点信息
     * @param parentId
     * @param name
     * @return
     */
    Node getByParent_IdAndName(int parentId, String name);
}
